package chd.edu.spzx.manager.service;

import chd.edu.spzx.model.dto.system.AssignRoleDto;
import chd.edu.spzx.model.dto.system.LoginDto;
import chd.edu.spzx.model.dto.system.SysUserDto;
import chd.edu.spzx.model.entity.system.SysUser;
import chd.edu.spzx.model.vo.system.LoginVo;
import com.github.pagehelper.PageInfo;

/**
 * @author Zhang Chaoliang
 * create 2023
 */
public interface SysUserService {

    /**
     * 用户登录
     * @param loginDto
     * @return
     */
    LoginVo login(LoginDto loginDto);

    /**
     * 获取当前登录用户
     * @param token
     * @return
     */
    SysUser getUserInfo(String token);

    /**
     * 用户退出
     * @param token
     */
    void logout(String token);

    /**
     * 用户条件分页查询接口
     * @param sysUserDto
     * @param pageNum
     * @param pageSize
     * @return
     */
    PageInfo<SysUser> findByPage(Integer pageNum, Integer pageSize, SysUserDto sysUserDto);

    /**
     * 添加用户接口
     * @param sysUser
     * @return
     */
    void saveSysUser(SysUser sysUser);

    /**
     * 修改用户接口
     * @param sysUser
     * @return
     */
    void updateSysUser(SysUser sysUser);

    /**
     * 删除用户接口
     * @param userId
     * @return
     */
    void deleteById(Long userId);

    /**
     * 用户分配角色
     * @param assignRoleDto
     * @return
     */
    void doAssign(AssignRoleDto assignRoleDto);
}
